package org.edu.modules.oa.service.impl;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.edu.modules.oa.entity.VeFileFilesEntity;
import org.edu.modules.oa.entity.VeOaMeetSummaryEntity;
import org.edu.modules.oa.mapper.IVeFileFilesMapper;
import org.edu.modules.oa.mapper.IVeOaMeetSummaryMapper;
import org.edu.modules.oa.service.IVeOaMeetSummaryQueryService;
import org.edu.modules.oa.vo.VeOaMeetSummaryQueryTableVo;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@Service
public class VeOaMeetSummaryQueryServiceImpI implements IVeOaMeetSummaryQueryService {
    @Resource
    private IVeOaMeetSummaryMapper iVeOaMeetSummaryMapper;

    @Resource private IVeFileFilesMapper iVeFileFilesMapper;

    @Override
    public HashMap<String, Object> showTable(VeOaMeetSummaryQueryTableVo veOaMeetSummaryQueryTableVo, Integer startPage, Integer pageSize) {

            veOaMeetSummaryQueryTableVo.setTitle("%"+veOaMeetSummaryQueryTableVo.getTitle()+"%");
            veOaMeetSummaryQueryTableVo.setMeetName("%"+veOaMeetSummaryQueryTableVo.getMeetName()+"%");


        System.out.println(veOaMeetSummaryQueryTableVo.getTitle());

        System.out.println(veOaMeetSummaryQueryTableVo.getMeetName());
        // 调用mybatisplus的分页
        IPage<VeOaMeetSummaryEntity> page=new Page<>(startPage,pageSize);

        // 拼接查询条件
        QueryWrapper<VeOaMeetSummaryEntity> tableWrapper = new QueryWrapper<>();
        if(veOaMeetSummaryQueryTableVo.getTitle()!=null&&!veOaMeetSummaryQueryTableVo.getTitle().equals("%%")){
            tableWrapper.like("title",veOaMeetSummaryQueryTableVo.getTitle());
            System.out.println("========================");
        }
        if(veOaMeetSummaryQueryTableVo.getMeetName()!=null&&!veOaMeetSummaryQueryTableVo.getMeetName().equals("%%")){
            tableWrapper.like("meet_name",veOaMeetSummaryQueryTableVo.getMeetName());
            System.out.println("========================");

        }
        // 条件加上分页查询
        page =iVeOaMeetSummaryMapper.selectPage(page,tableWrapper);
        List<VeOaMeetSummaryEntity> entityList=page.getRecords();
        System.out.println(entityList);
        List<VeOaMeetSummaryQueryTableVo> voelist =new ArrayList<>();

        // for循环把需要用的字段加到 导出集合里面去
        for (VeOaMeetSummaryEntity o:entityList){

            VeOaMeetSummaryQueryTableVo tableVo =new VeOaMeetSummaryQueryTableVo();
            if(o.getFileId()!=null && o.getFileId()!=0){
                VeFileFilesEntity entity=  iVeFileFilesMapper.selectById(o.getFileId());
                tableVo.setSourceFile(entity.getSourceFile());
            }
//            tableVo.setSourceFile();
            tableVo.setMeetId(o.getId());
            tableVo.setMeetName(o.getMeetName());
            tableVo.setTitle(o.getTitle());
            tableVo.setCreateName(o.getCreateName());
            // 时间类型转换成字符串
            SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            tableVo.setCreateTime(formatter.format(o.getCreateTime()));




            voelist.add(tableVo);


        }
        int count =iVeOaMeetSummaryMapper.selectCount(tableWrapper);
        // 把查出来的东西存到map里面去
        HashMap<String , Object> map = new HashMap<>();
        map.put("list",voelist);
        map.put("count",count);

        // 查询表格总行数
        return map;
    }
}
